<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:x="https://www.texmacs.org/2002/extensions" xmlns:m="http://www.w3.org/1998/Math/MathML">
  <head>
    <title>TeXmacs notes</title>
    <meta content="TeXmacs 1.99.21" name="generator"></meta>
    <link href="../resources/notes-base.css" type="text/css" rel="stylesheet"></link>
    <link href="../resources/blog-icon.png" rel="icon"></link>
    <script src="../resources/highlight.pack.js" language="javascript" defer></script>
    <script src="../resources/notes-base.js" language="javascript" defer></script>
    <script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js" language="javascript"></script>
  </head>
  <body>
    <div class="toggle" style="display: none">
      <p>
        
      </p>
    </div>
    <div class="notes-header">
      <p>
        <img class="image" src="../resources/texmacs-blog-transparent.png" width="28.116784"></img><span style="margin-left: 2pt"></span><a href="./main.html">[main]</a><em
        class="notes-header-name">Notes on TeXmacs</em>
      </p>
    </div>
    <h1 id="auto-1">Jolly coders<span style="margin-left: 1em"></span></h1>
    <div class="notes-abstract">
      This page gather informations on the activities of the TeXmacs hacking
      group.
    </div>
    <p>
      
    </p>
    <p>
      
    </p>
    <p>
      <b>Jolly coders</b> is a group of people interested in learning, hacking
      and in general exchanging about TeXmacs internal structure. The group
      started random gatherings in March 2021 and hope to continue to meet
      quasi-regularly for long time. For the moment the focus is to learn
      together about TeXmacs internal structure, the C++ and Scheme codebase,
      the interaction with external libraries and the various plugins, the
      behaviour of the converters, and many other topics related to TeXmacs.
    </p>
    <p>
      
    </p>
    <p>
      Meetings are announced in a private mailing list. Write to <a href="mailto:m.gubinelli@gmail.com">m.gubinelli@gmail.com</a>
      to ask to be included in the communications. Recordings of the meetings
      are kept whenever possible.
    </p>
    <i><p>
      
    </p><p>
      Current members
    </p></i>
    <p>
      Basile Audoly, Miguel de Benito Delgado, &Aacute;lvaro Tejero Cantero,
      Massimiliano Gubinelli, Joris van der Hoeven, Philippe Joyez,
      Pierre-Henri Jondot, Marc Lalaude-Labayle, Giovanni Piredda, Joy Yang
      Qiping, Peter Rap&#x010D;an, Darcy Shen, Jeroen Wouters.
    </p>
    <p>
      
    </p>
    <p>
      <i>Journal of past gatherings</i>
    </p>
    <ul>
      <li>
        <p>
          5.6.2021 &ndash; A small meeting with Joris, Luigi and Max. We
          informally discussed about advertising on social media, on the
          Italian translation and a bug in the multi-parts document. No
          recording has been made.
        </p>
      </li>
      <li>
        <p>
          29.5.2021 &ndash; Darcy showed his progress with an improved Python
          plugin supporting <code>pyenv</code> to select a Python environment
          for the session. Then Joris used as a motivation a repetitive
          reformatting task for a long document to show us how to use scheme
          to perform extensive changes in a document including converting
          certain complext markup into another. The session was recorded.
        </p>
      </li>
      <li>
        <p>
          23.5.2021 &ndash; Still unstructured discussions which has not been
          recorder (sorry!). A small group today: Jeroen, Joris, Luigi and
          Max. Topics were a bug on the activation of remote plugins which was
          nailed down and removed, Jeroen has still to test it but seems good
          to go. We discussed also how translations works (talk with Peter or
          Luigi if you want to know more) and Max reported some progress in
          support of more mathematical fonts via OpenType. We also chatted
          about the near future and advertisement for the upcomin release. <a
          href="https://twitter.com/gnu_texmacs/status/1396158157991333890">Twit</a>.
        </p>
      </li>
      <li>
        <p>
          15.5.2021 &ndash; We discussed freely about the future of TeXmacs,
          the upcoming 2.1 release and the creation of an unstable branch
          where to test new features, possibly managed in <class style="font-variant: small-caps">git</class>
          instead of <class style="font-variant: small-caps">svn</class>. This new branch will host the
          integration of an alternative <class style="font-variant: small-caps">scheme</class>
          implementation and the passage to <class style="font-variant: small-caps">qt</class> 5 (or 6).
          We also addressed some of the open problems in LaTeX conversion, in
          particular the formatting of various kind of mathematical displays
          with multiple lines and complex horizontal alignments. Given the
          unstructured format this sessions was not recorded. Were present 
          Basile,  Jeroen, Joris, Max and Miguel. 
        </p>
      </li>
      <li>
        <p>
          9.5.2021 &ndash; Many topics today! Miguel showed up his Tufte-like
          article style and we discussed a bit some technical challenges of
          figure typesetting and how to make the markup dependend on whether
          we are on odd/even pages. Max showed a bibliography style to typeset
          publication lists to be used in CV or homepages. The we met all
          together on the TeXmacs server to try the chat rooms and the live
          document features. Finally Joris joined us and demonstrated a bit
          more the conservative conversion from/to LaTeX and explained some of
          the implementations details. This meeting was worth a couple of
          tweets: <a href="https://twitter.com/gnu_texmacs/status/1391065772533899266">a first</a> and then <a href="https://twitter.com/gnu_texmacs/status/1391071054580396032">a second</a>.
        </p>
      </li>
      <li>
        <p>
          1.5.2021 &ndash; Miguel showed us his many enhancements to TeXmacs
          which still didn't make their way to the main trunk: autocompletion
          for references, another style of comments, and the wonderful
          integration he has set up for producing content for the Hugo static
          site generator, including a TeXmacs\(\rightarrow\)Markdown
          converter. We then discussed about conversion in general and
          conservative conversion. Joris showed us how the conservative
          conversion with LaTeX works. It is described also in more detail in
          the paper   <a href="http://www.texmacs.org/joris/latexconv/latexconv-abs.html">Conservative conversion between LaTeX and
          TeXmacs</a> already mentioned in previous meetings. We discussed a
          possible conservative conversion for Markdown. The topic will
          certainly pop up again in future meetings. Towards the end we had a
          discussion on possible advertisement strategies to make a wider
          public aware of the existence and capabilities of TeXmacs. <a href="https://twitter.com/gnu_texmacs/status/1388532464512118786">Obligatory
          tweet</a>.
        </p>
      </li>
      <li>
        <p>
          24.4.2021 &ndash; We continued the discussion of style files and the
          customization of styles and of tags like theorem, proposition,
          etc<span style="margin-left: 0.16665em"></span>.<span style="margin-left: 0.16665em"></span>.<span style="margin-left: 0.16665em"></span>.<span
          style="margin-left: 0.16665em"></span> Joris showed ways to introduce different color themes
          for various kinds of tags in such a way that this plays well with
          different styles (e.g. beamer, article, etc<span style="margin-left: 0.16665em"></span>.<span
          style="margin-left: 0.16665em"></span>.<span style="margin-left: 0.16665em"></span>.<span style="margin-left: 0.16665em"></span>) We also
          briefly discussed the possibility to improve the way users can
          access and customize options for plugins via the application
          preferences systems and dialogs. Then Joris gave an overview of the
          font selection system, and of the various C++ classes involved in
          unicode and math font support. <a href="https://twitter.com/gnu_texmacs/status/1385981413212753923">Tweet</a>. 
        </p>
      </li>
      <li>
        <p>
          17.4.2021 &ndash; Joris explained the organisation of the style
          files for beamer presentations: what are the various tags, how the
          overlays are organised, what are the possible improvements. In
          particular we discussed about a possible template system, better UI
          for interacting with overlays and screens, how to structure content
          on the slides, how the theming works, the various parameters for
          decorations. Towards the end we touched upon the theme of fonts and
          of their installation. A <a href="https://twitter.com/gnu_texmacs/status/1383459597063655428">screenshot</a> from twitter.
        </p>
      </li>
      <li>
        <p>
          10.4.2021 &ndash; Darcy showed us his work on the <a href="https://www.gnu.org/software/octave/index">Octave</a>
          plugin and we worked out some issues in the plugin mechanisms: how
          to properly format numbers coming from Octave and how to support
          UTF8 output. <a href="https://twitter.com/gnu_texmacs/status/1380906950402138114">Twitter trace</a>.
        </p>
      </li>
      <li>
        <p>
          9.4.2021 &ndash; We improved two standard styles for APS and AIP
          journals based on the RevTeX LaTeX package, this allowed us to
          discuss various issues related to writing style files and also some
          aspects of the conversions in LaTeX. We talked about the tags for
          the front matter of the papers (title, authors, etc<span style="margin-left: 0.16665em"></span>.<span
          style="margin-left: 0.16665em"></span>.<span style="margin-left: 0.16665em"></span>.<span style="margin-left: 0.16665em"></span>), the
          typesetting of the bibliography, some problems related to wrong
          interactions among styling macros. The obligatory <a href="https://twitter.com/gnu_texmacs/status/1380569437183610880">twitter
          post</a>.
        </p>
      </li>
      <li>
        <p>
          3.4.2021 &ndash; Discussion on the behaviour of section headers
          within tables. This become an attempt to fix some suboptimal
          behaviour of the sectioning macros, and a deep dive on the
          algorithms TeXmacs uses to typeset lines in tables and to determine
          the size of horizontal cells in tables. A lot of macro code and some
          C++. <a href="https://twitter.com/gnu_texmacs/status/1378382890724175872">Twitter post</a>.
        </p>
      </li>
      <li>
        <p>
          2.4.2021 &ndash; Joris explained the use of spreadsheets in TeXmacs
          and how the plugins can produce dynamic content, i.e. content in the
          typesetted document which change in response to computations in the
          plugin. He gave an example with <a href="http://www.mathemagix.org/www/mmdoc/doc/html/main/index.en.html">Mathemagix</a> (a
          programming language for computer algebra and analysis). We then
          also discussed the possibility of embedding documents within PDF and
          in general the problem of embedding data within documents. Finally
          some remarks on conservative conversions between various formats,
          i.e. conversions which can be incrementally updated, e.g. <a href="http://www.texmacs.org/joris/latexconv/latexconv-abs.html">Conservative
          conversion between LaTeX and TeXmacs</a>.
        </p>
      </li>
      <li>
        <p>
          28.3.2021 &ndash; Hacking session on improving the navigation of the
          structure of the document (sections, subsections<span style="margin-left: 0.16665em"></span>.<span
          style="margin-left: 0.16665em"></span>.<span style="margin-left: 0.16665em"></span>.<span style="margin-left: 0.16665em"></span>). We
          modified the scheme code of the UI to produce properly indented
          structures for the menu listing all the sections and added some
          keybindings. Some screenshots in the <a href="https://twitter.com/gnu_texmacs/status/1376205283102502917">twitter feed</a>. We
          had also some (not recorded) discussion on live editing of documents
          and on versioning of documents. We will discuss these topics also in
          a further session.
        </p>
      </li>
      <li>
        <p>
          20.3.2021 &ndash; Various aspects of the use of Scheme in TeXmacs,
          including embedding Scheme, the various dialects and the status of
          the Guile 3 and Chez Scheme ports. The design and use of tm-define.
          Features currently absent in TeXmacs like a structured table of
          contents or a double view on a document. Design choices in TeXmacs'
          user interface. Joris demonstrated the use of the search tool,
          including template variables and the filtering option.
        </p>
      </li>
      <li>
        <p>
          19.3.2021 &ndash; The build systems. How the makefile works. Demo of
          the old widget library and of the Guile 3 port. Discussion on the
          Scheme code, the module system, the differences between Guile 1.8
          and Guile 2/3.
        </p>
      </li>
      <li>
        <p>
          14.3.2021 &ndash; Scheme/C++ interface, patching the S7 Scheme
          interpreter, generation of menus and widgets between C++ and Scheme.
        </p>
      </li>
      <li>
        <p>
          13.3.2021 &ndash; General structure of the C++ codebase, various
          directories, abstract interfaces to the user interface, handling of
          events,  example of the close window event.
        </p>
      </li>
      <li>
        <p>
          12.3.2021 &ndash; The Xcode project, working on a bug related to
          exporting PDF images to the clipboard on a Mac.
        </p>
      </li>
    </ul>
    <p>
      
    </p>
    <p>
      <i>Other sources for technical informations</i>
    </p>
    <ul>
      <li>
        <p>
          A couple of videos recorded during the 2012 TeXmacs workshop. In <a
          href="http://magix.lix.polytechnique.fr/local/videos/TeXmacs-5.mp4">video 5</a> and <a href="http://magix.lix.polytechnique.fr/local/videos/TeXmacs-6.mp4">video 6</a> Joris talks about TeXmacs
          internals, the C++ and Scheme code and how to write plugins. There
          is also  <a href="http://magix.lix.polytechnique.fr/local/videos/TeXmacs-4.mp4">video 4</a>  on the TeXmacs document format, style
          files, and converters. For all the series go <a href="http://magix.lix.polytechnique.fr/magix/workshop/workshop-videos.en.html">here</a>.
        </p>
      </li>
      <li>
        <p>
          The developer pages in this blog (from the <a href="./main.html">main</a> page)
        </p>
      </li>
      <li>
        <p>
          The list of developments resources &amp; ideas (<a href="./dev-notes.html">here</a>) 
        </p>
      </li>
    </ul>
    <p>
      <i>List of topics of interest to the group members</i>
    </p>
    <ul>
      <li>
        <p>
          Conversion to HTML/MathML. Creating accessible math content is
          creating major headaches in many maths departments in the UK , as
          legal requirements to do so are increasing. Providing HTML with
          MathML or MathJax is generally considered to be the best way to go,
          as users can control the font type and size, increase contrast or
          use screen readers to read out the document (<a href="">URL</a>)
        </p>
      </li>
      <li>
        <p>
          Plugins (Jupyter, Sage, Octave and Python)
        </p>
      </li>
      <li>
        <p>
          How to write templates for conference paper. and macro writing in
          general, e.g., how do you write a macro to add a new floating
          environment? Suggestion: write during a session a new style file,
          which we could then put somewhere where other people can use it. In
          addition to templates for conference papers, a style file for a
          curriculum vitae could be interesting.
        </p>
      </li>
      <li>
        <p>
          Using TeXmacs is the lack of autocompletion and error correction for
          English words.
        </p>
      </li>
      <li>
        <p>
          Get accustomed to TeXmacs codebase, configuring developing tools
          like Xcode.
        </p>
      </li>
      <li>
        <p>
          Bugfixing. Example, how to investigate bugs that result in
          segfaults, e.g. <a href="https://savannah.gnu.org/bugs/?60125">bug #<a href="https://savannah.gnu.org/bugs/?60125">60125</a></a> and <a href="https://savannah.gnu.org/bugs/?60125">bug
          #<a href="https://savannah.gnu.org/bugs/?60015">60015</a></a>.
        </p>
      </li>
    </ul>
  </body>
</html>